﻿using MugenMvvmToolkit.Models;

namespace MugenMvvmToolkit.Interfaces
{
    /// <summary>
    ///     Represents the activation policy of view-model.
    /// </summary>
    public interface IActivationPolicy
    {
        /// <summary>
        ///     Gets the property that responsible to initialize the view.
        /// </summary>
        bool WithoutView { get; }

        /// <summary>
        ///     Gets the value which responsible to initialize the IocAdapter using the IocAdapter of parent view model.
        /// </summary>
        bool UseParentIocAdapter { get; }

        /// <summary>
        ///     Gets or sets the value that responsible for listen messages in created view model.
        /// </summary>
        ListenType? ListenMode { get; }

        /// <summary>
        ///     Gets the name of view binding, if any.
        /// </summary>
        string ViewBindingName { get; }

        /// <summary>
        ///     Gets the name of view model binding, if any.
        /// </summary>
        string ViewModelBindingName { get; }

        /// <summary>
        ///     Gets the ioc parameters, if any.
        /// </summary>
        IIocParameter[] IocParameters { get; }
    }
}